package algo3.grupo3.vista;

import algo3.grupo3.modelo.Bomba;
import algo3.grupo3.modelo.Enemigo;

public class EntidadEnemigo extends Entidad {

	public final static int ANCHO_ENEMIGO = 50;
	public final static int ALTO_ENEMIGO = 50;
	public final String PATH_IMAGEN_ENEMIGO_CECILIO = "images//Cecilio.gif";
	public final String PATH_IMAGEN_ENEMIGO_LOPEZ_REGGAE_ALADO = "images//LopezReggaeAlado.gif";
	public final String PATH_IMAGEN_ENEMIGO_LOPEZ_REGGAE = "images//LopezReggae.gif";
	
	public EntidadEnemigo(Enemigo e){
		super(ANCHO_ENEMIGO,ALTO_ENEMIGO,e);
		this.establecerApariencia();
	}//fin de constructor
	
	protected void establecerApariencia(){
		Enemigo e = (Enemigo)objeto;
		if(e== null)
			return;
		int tipoEnemigo= e.obtenerTipoEnemigo();
		
		switch(tipoEnemigo){
		case Enemigo.CECILIO:
			this.cambiarApariencia(PATH_IMAGEN_ENEMIGO_CECILIO);
			break;
		case Enemigo.LOPEZ_REGGAE_ALADO:
			this.cambiarApariencia(PATH_IMAGEN_ENEMIGO_LOPEZ_REGGAE_ALADO);
			break;
		case Enemigo.LOPEZ_REGGAE:
			this.cambiarApariencia(PATH_IMAGEN_ENEMIGO_LOPEZ_REGGAE);
			break;
		default:
			this.cambiarApariencia(PATH_IMAGEN_ENEMIGO_CECILIO);
			break;
		}
	}//fin de establecerApariencia
	
	@Override
	public synchronized void actualizar(double tiempo){
		super.actualizar(tiempo);
		Enemigo e = (Enemigo)obtenerObjeto();
		if(e== null)
			return;
		if(e.obtenerCronometroAtaque()>(Enemigo.DELAY_ATAQUE-500)){
			Bomba b= e.atacar();
			this.plantarBomba(b);
			e.resetearCronometroAtaque();
			
		}
	}//fin de actualizar
	
	public synchronized void plantarBomba(Bomba b){
		if(b== null){
			System.out.println("b es null");
			return;
		}
			
		logicaJuego.agregarBomba(b);
		
	}//fin de plantarBomba
	
}//fin de EntidadEnemigo
